¿Cuál es la diferencia entre las siguientes dos funciones?
In [1]:
mysin(x) = sin(x)
mysin2(x) = println(sin(x))
Out[1]:
In [2]:
mysin(3)
Out[2]:
In [3]:
mysin2(3)
In [4]:
x = mysin(3)
x
Out[4]:
In [5]:
x
Out[5]:
In [6]:
x = mysin2(3)
x
In [7]:
x
La segunda versión no es útil, en el sentido que no regresa nada; el valor que se calculó se desapereció. Por lo tanto, casi siempre queremos que las funciones no impriman (excepto para depurar el código), sino que regresen valores.
¿Cómo podemos reutilizar código que ya hemos escrito?
No (es decir nunca) copiamos y pegamos.
Más bien, existe una manera fácil y ágil de "guardar" un pedazo de código para que lo podamos reutilizar después: ponerlo en una función. Las funciones existen para hacer disponible el trabajo que ya hemos hecho para que lo podamos reutilizar después.
Haz
In [8]:
2^(-1)
¿Qué pasa? ¿Por qué?
En Julia, siempre debemos intentar que las funciones regresen siempre el mismo tipo de respuesta.
In [26]:
function imprime(x)
println(string(x))
x
end
Out[26]:
In [27]:
imprime(x==3)
Out[27]:
In [28]:
imprime(x==2)
Out[28]:
In [29]:
x = 3
y = 2
Out[29]:
In [30]:
imprime(x == 3) && imprime(y == 2)
Out[30]:
In [31]:
imprime(x == 3) && imprime(y == 1)
Out[31]:
In [32]:
imprime(x == 2) && imprime(y == 1)
Out[32]:
In [34]:
imprime(x == 3) || imprime(y == 1)
Out[34]:
¿Para qué sirve esto?
In [48]:
a = "1010110110001"
function pos_punto(a)
for i=1:length(a)
# if a[i] == '.'
# println(i)
# end
# pos = i
a[i] == '.' && return i
end
return 0
end
Out[48]:
In [49]:
pos_punto(a)
Out[49]:
In [39]:
search(a, '.' )
Out[39]:
In [50]:
search("hola" , '.')
Out[50]:
In [53]:
typeof("hola")
Out[53]:
In [52]:
'.'
Out[52]:
In [57]:
s = "1010"
Out[57]:
In [58]:
s[2]
Out[58]:
In [60]:
typeof(s[2])
Out[60]:
In [59]:
int(ans)
Out[59]:
In [61]:
'hola'
In [62]:
'α'
Out[62]:
In [63]:
typeof(ans)
Out[63]:
In [64]:
s =
In [71]:
s = "holαβ"
Out[71]:
In [66]:
typeof(s)
Out[66]:
¿Cómo encontrar los caracteres en la cadena, de manera ingenua?
In [67]:
s[1]
Out[67]:
In [68]:
s[2]
Out[68]:
In [69]:
s[3]
Out[69]:
In [70]:
s[4]
Out[70]:
In [72]:
s[5]
In [73]:
s[4]
Out[73]:
In [74]:
length(s)
Out[74]:
In [75]:
s[6]
Out[75]:
In [76]:
search(s, 'α')
Out[76]:
In [77]:
search(s, 'β')
Out[77]:
In [78]:
nextind(s, 4)
Out[78]:
In [79]:
@which search(s, 'β')
Out[79]:
In [1]:
una_variable_con_un_nombre_muy_largo = 3
Out[1]:
In [2]:
una_variable_con_un_nombre_muy_largo
Out[2]:
In [3]:
una_variable_mas = 4
Out[3]:
In [4]:
una_variable_mas
Out[4]:
In [5]:
una_wariable = 10
Out[5]:
In [6]:
una_wariable
Out[6]:
In [ ]: